package cn.pangza.user.service;

import cn.pangza.common.exception.BusinessException;
import cn.pangza.common.mybatisplus.entity.PageRequest;
import cn.pangza.common.mybatisplus.entity.PageResult;
import cn.pangza.user.entity.dto.SystemUserDto;
import cn.pangza.user.entity.dto.UserRoleDto;
import cn.pangza.user.entity.po.SystemUserPo;
import cn.pangza.user.entity.request.LoginRequest;
import cn.pangza.user.entity.request.SystemUserPageRequest;
import cn.pangza.user.entity.request.UpdateUserRequest;
import cn.pangza.user.entity.vo.GetUserInfoVo;
import cn.pangza.user.entity.vo.SystemUserVo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

public interface SystemUserService extends IService<SystemUserPo> {
    void createSystemUser(SystemUserDto systemUserDto);

    List<SystemUserVo> getSystemUserList();

    SystemUserVo login(SystemUserDto systemUserDto) throws BusinessException;

    PageResult<SystemUserPo> getSystemUserPage(PageRequest<SystemUserPageRequest> pageRequest);

    Boolean createSystemUser(LoginRequest loginRequest) throws BusinessException;

    Boolean updateSystemUser(UpdateUserRequest updateUserRequest) throws BusinessException;

    Boolean deleteSystemUser(Integer userId);

    GetUserInfoVo getUser(Integer id);

    void updateUserRole(UserRoleDto userRoleDto);

    List<Integer> getRoleIdsByUserId(Integer id);
}
